fix: 工作区切换后历史图片落盘 + 按需读取 - #238
Conversation
按需下载飞书消息图片,参照 PR #237 的 file-cache 模式,为父群图片 lazy loading 与工作区切换后图片落盘提供按需读取能力。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
为工作区切换重启时图片路径注入做准备,让本次消息内已落盘的图片 路径能从 parseMessage 经队列流到 executeClaudeTask。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
setup_workspace 触发的 restart query 不重传多模态 images(避免 重复消耗 token),导致之前加载的图片在新工作区上下文中丢失。 修复: - downloadHistoryImages 在下载历史图片时同步将原图落盘到 file-cache - parseMessage 将当前消息图片落盘路径收集到 currentImagePaths - 工作区切换重启时将所有落盘路径以文本提示注入 prompt,agent 可按需通过 Read 工具加载查看 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Claude finished @lishuceo's task in 4m 38s —— View job Claude PR Review —
|
injectQuotedMessage 下载引用消息中的图片时一并 saveMessageFileToCache, 在 executeClaudeTask 调用处把落盘路径合并进 restartImagePaths, 修复 reviewer 指出的:工作区切换 restart 后 quoted parent image 同样 会丢失的问题。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Claude finished @lishuceo's task in 1m 42s —— View job Claude PR Review — ✅ ApprovedVerdict: 1 previous issue fixed. No new issues found.
Verified fix —
|
为 96292bc 修复加针对性测试: - 验证下载 quoted 图片后调用 saveMessageFileToCache 并返回 savedImagePath - 验证落盘失败时 images 与 prompt 仍正常返回(落盘是 non-fatal) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Claude finished @lishuceo's task in 1m 42s —— View job Claude PR Review — ✅ ApprovedVerdict: 新增 commit (dd5cc0b) 补齐了上一轮 review 提到的测试缺口。无新增问题。
本轮新增 commit 验证 —
|
Summary
setup_workspace切换工作区后,restart query 不重传多模态images导致历史聊天图片丢失的问题/tmp/feishu-downloads/feishu_download_message_imageMCP 工具,供父群图片 lazy loading 与新落盘路径按需读取Changes
src/feishu/tools/image.ts(新增)—feishu_download_message_imageMCP 工具,30MB 上限,按 magic bytes 推导扩展名src/feishu/event-handler.ts—downloadHistoryImages在压缩历史图前先把原图落盘,返回savedImagePathsparseMessage收集当前消息图片落盘路径到currentImagePathsformatRestartImageHints把所有落盘路径拼成[历史聊天图片]提示effectivePrompt前src/session/{types,queue}.ts—QueueTask与enqueue()透传currentImagePathsTest plan
npx tsc --noEmit— 无新增类型错误npx vitest run src/feishu/__tests__/event-handler.test.ts— 55 passed(含新增 4 个formatRestartImageHints测试)npx vitest run src/feishu/tools/__tests__/index.test.ts— 9 passed(已更新 image tool 注册计数)setup_workspace切换工作区后,验证 agent 仍能通过 Read 工具看到之前的图片🤖 Generated with Claude Code